package leetcode_101_120;

import utils.TreeNode;

public class minDepth_111 {
    /**
     * 找出二叉树最小深度
     */
    public int minDepth(TreeNode root) {
        /**
         * 想法是对每个节点判断左右子树最短深度
         * 如果一边子树为空，只计算另一边
         * 11ms
         */
        if(root==null)
            return 0;

        int left_min = minDepth(root.left);  //左子树中最小深度
        int right_min = minDepth(root.right);//右子树中最小深度

        if (root.left == null)
            return right_min+1;
        else if (root.right == null)
            return left_min+1;
        else
            return Math.min(left_min, right_min) + 1;
    }
}
